`foreach` is een krachtige en veelgebruikte constructie in PHP om door arrays en objecten te itereren. De `foreach`-lus biedt een simpele manier om elke waarde in een array te doorlopen zonder expliciet een tellervariabele of voorwaarden voor het einde van de lus te definiëren. Hier volgt een technische beschrijving van hoe je `foreach` met arrays in PHP kunt gebruiken, inclusief voorbeelden en bronnen.
```
foreach ($array as $value) {
// code om de waarde te verwerken
}
```
In deze structuur wordt elke waarde uit `$array` sequentieel aan de variabele `$value` toegewezen voor iedere iteratie van de lus.
Een eenvoudig voorbeeld om dit te illustreren:
```
$array = array(1, 2, 3, 4, 5);
foreach ($array as $value) {
echo $value . “\n”;
}
```
Bij het uitvoeren van bovenstaande code wordt elke waarde in de array weergegeven:
```
1
2
3
4
5
```
Bron: [Official PHP Manual – foreach loops](https://www.php.net/manual/en/control-structures.foreach.php)
```
foreach ($array as $key => $value) {
// code om de sleutel en waarde te verwerken
}
```
Een voorbeeld om dit te illustreren:
```
$array = array(“a” => 1, “b” => 2, “c” => 3);
foreach ($array as $key => $value) {
echo $key . “ => “ . $value . “\n”;
}
```
De uitvoer van deze code is:
```
a => 1
b => 2
c => 3
```
```
$multiArray = array(
array(“name” => “John”, “age” => 30),
array(“name” => “Jane”, “age” => 25),
);
foreach ($multiArray as $person) {
foreach ($person as $key => $value) {
echo $key . “: “ . $value . “\n”;
}
echo “\n”;
}
```
Deze code geeft de informatie per persoon weer:
```
name: John
age: 30
name: Jane
age: 25
```
Bij gebruik van referenties in `foreach` kan je de originele array rechtstreeks bijwerken. Dit wordt gedaan door de waarde aan te passen via een referentie:
```
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value *= 2;
}
unset($value); // Dit is belangrijk om referentieproblemen te voorkomen
print_r($arr);
```
In dit geval wordt de originele array bijgewerkt naar:
```
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
)
```
Bron: [Official PHP Manual – references](https://www.php.net/manual/en/language.references.whatdo.php)
De `foreach`-lus is bijzonder nuttig in PHP vanwege de eenvoud en leesbaarheid waarmee het rijen en objecten doorloopt. Of je nu werkt met eenvoudige, geneste arrays of arrays met sleutel-waarde-paar, `foreach` biedt een intuïtieve manier om met gegevens te werken.
Bronnen:
1. [PHP Manual – Foreach](https://www.php.net/manual/en/control-structures.foreach.php)
2. [PHP Manual – References](https://www.php.net/manual/en/language.references.whatdo.php)